Page({
  /**
   * 页面的初始数据
   */
  data: {
    content: '', // 输入框内容
    data:[],
    dataList: [
      {"tit":"类型","text":''},
      {"tit":"时间","text":''},
      {"tit":"提醒","text":''},
    ],
    // 弹窗控制变量
    showLei: false,    // 类型面板
    showTime: false,   // 时间面板
    showRemind: false, // 提醒面板
    typeAction:'',
    // 类型选择数据
    typeActions: [
      {name: '日常提醒'},
      {name: '洗护提醒'},
      {name: '清洁提醒'},
      {name: '用药提醒', subname: '注意请严格按照医嘱用药'},
    ],

    // 时间选择数据
    minDate: new Date().getTime(), // 最小时间：当前时间
    maxDate: new Date().getTime() + 365 * 24 * 60 * 60 * 1000, // 最大时间：1年后
    currentDate: new Date().getTime(), // 当前选中时间

    // 提醒选择数据
    remindActions: [
      {name: '不提醒'},
      {name: '提前5分钟'},
      {name: '提前10分钟'},
      {name: '提前30分钟'},
      {name: '提前1小时'},
    ]
  },
  handelBack(){
    wx.switchTab({
      url: '/pages/document/index',
    })
  },
  /**
   * 输入框内容变化时触发
   */
  onContentInput(e) {
    // console.log(e.detail.value);
    this.setData({
      content: e.detail.value
    });
  },

  /**
   * 点击列表项，显示对应面板
   */
  handleCheck(ev) {
    const { index } = ev.currentTarget.dataset;
    switch(index) {
      case 0: // 类型
        this.setData({ showLei: true });
        break;
      case 1: // 时间
        this.setData({ showTime: true });
        break;
      case 2: // 提醒
        this.setData({ showRemind: true });
        break;
    }
  },

  /**
   * 关闭所有面板
   */
  onClose() {
    this.setData({
      showLei: false,
      showTime: false,
      showRemind: false
    });
  },

  /**
   * 类型选择确认
   */
  onTypeSelect(e) {
    const selectedType = e.detail.name; // 获取选择的类型名称
    // 更新dataList中"类型"的text
    const newDataList = [...this.data.dataList];
    newDataList[0].text = selectedType;
    this.setData({
      dataList: newDataList,
      showLei: false // 关闭面板
    });
  },

  /**
   * 时间选择确认
   */
  onTimeConfirm(e) {
    const timeStamp = e.detail; // 获取选择的时间戳
    // 格式化时间为"YYYY-MM-DD HH:MM"
    const date = new Date(timeStamp);
    const year = date.getFullYear();
    const month = (date.getMonth() + 1).toString().padStart(2, '0');
    const day = date.getDate().toString().padStart(2, '0');
    const hour = date.getHours().toString().padStart(2, '0');
    const minute = date.getMinutes().toString().padStart(2, '0');
    const formatTime = `${year}-${month}-${day} ${hour}:${minute}`;

    // 更新dataList中"时间"的text
    const newDataList = [...this.data.dataList];
    newDataList[1].text = formatTime;
    this.setData({
      dataList: newDataList,
      currentDate: timeStamp, // 保存当前选中时间
      showTime: false // 关闭面板
    });
  },

  /**
   * 提醒选择确认
   */
  onRemindSelect(e) {
    const selectedRemind = e.detail.name; // 获取选择的提醒方式
    // 更新dataList中"提醒"的text
    const newDataList = [...this.data.dataList];
    newDataList[2].text = selectedRemind;
    this.setData({
      dataList: newDataList,
      showRemind: false // 关闭面板
    });
  },

  /**
   * 保存按钮点击事件：统一获取所有数据
   */
  async saveData() {
    // 收集所有数据
    const formData = {
      content: this.data.content, // 输入框内容
      type: this.data.dataList[0].text, // 类型
      time: this.data.dataList[1].text, // 时间
      remind: this.data.dataList[2].text // 提醒
    };
    // 简单验证
    if (!formData.type) {
      wx.showToast({ title: '请选择类型', icon: 'none' });
      return;
    }
    if (!formData.time) {
      wx.showToast({ title: '请选择时间', icon: 'none' });
      return;
    }
    console.log('保存的数据：', formData);
    try {
      // 从本地存储获取数据
      const storageData = wx.getStorageSync('dataset') || {};
      // 生成唯一ID（使用时间戳后4位+随机数）
      const timestamp = Date.now().toString();
      const random = Math.floor(Math.random() * 1000).toString().padStart(3, '0');
      const uniqueId = `${timestamp.slice(-4)}${random}`;
      // 提取日期和时间部分
      const [datePart, timePart] = formData.time.split(' ');
      const displayTime = timePart || datePart; // 如果只有日期，则显示日期
      // 构建新提醒对象
      const newReminder = {
        openid: "111",
        id: uniqueId,
        tit: formData.content || formData.type, // 使用内容或类型作为标题
        date: displayTime,
        checked: false, // 默认未完成
        class: this.getClassByType(formData.type) // 根据类型设置颜色
      };
      // 添加到remindListId数组
      storageData.remindListId.push(newReminder);
      // 保存回本地存储
      wx.setStorage({key:'dataset', data:storageData});
      console.log("data_set新数据",storageData);
      wx.showToast({ title: '添加成功' });
      let res = await getApp().flyio.put(`/data_set/${storageData.id}`,{
        ...storageData
      })
      console.log("数据库更新結果",res);
      wx.navigateBack();
    } catch (error) {
      console.error('保存失败:', error);
      wx.showToast({ title: '保存失败', icon: 'none' });
    }
  },
  // 根据提醒类型返回对应的样式类
  getClassByType(type) {
    const map = {
      '日常提醒': 'yellow',
      '洗护提醒': 'blue',
      '清洁提醒': 'red',
      '用药提醒': 'orange'
    };
    return map[type] || 'yellow';
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})